لذلك أواجه بعض المشاكل في معرفة الاستخدام الصحيح لـ list :: sort () فيما يتعلق بقائمة البنى. ها هي الكود ذات الصلة: طالب منظم { char firstnm [20] ، lastnm [20] ؛ معرف int ، درجة؛ } ؛ قائمةقائمة ؛ // رمز غير ذي صلة ... cout << "الرجاء إدخال اسمك وهويتك ودرجتك. (مثال: myfirst mylast 0 12) \ n"؛ سينما >> data.firstnm >> data.lastnm >> data.id >> data.grade؛ sList.push_back (بيانات) ؛ sList.sort () ، المشكلة التي أحاول حلها هي استخدام sList.sort () للفرز حسب المعرف. ومع ذلك ، ليس لدي أي فكرة عن كيفية تمريرها بشكل صحيح إلى list :: sort (). شكرا مقدما على أي مساعدة / وقت! تحرير: كان الحل ببساطة إضافة هذا إلى هيكلي عامل تشغيل bool <(const student & cmp) const { معرف العودة
2021-01-22 08:20:04
يجب عليك إلقاء نظرة على std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) هناك تعريفات متعددة لهذه الوظيفة ، وواحد حيث يمكنك تحديد ما تريد الفرز. أيضًا ، ألق نظرة على هذا المنشور ، أعتقد أنه ما تحتاجه: https://stackoverflow.com/a/21234017/6663947 تعديل : هذا مثال على المقارنة: sList.sort ([] (const student & a، const student & b) {return a.idفرز باطل (قارن شركات) ؛ بافتراض أنك تريد فرز كائنات الطالب في قائمتك وفقًا لمعرف المفتاح بترتيب تصاعدي. يمكنك إما تحديد عامل التشغيل <لفئة الطالب المحددة بواسطة المستخدم على النحو التالي: عامل تشغيل bool <(student const & a، student const & b) { إرجاع a.id